pub struct ConfigManager {
    pub use_phi: bool,
    pub optimise: bool,
    pub debug: bool,
    pub verbose: bool,
    pub all_allocs_in_entry: bool,
}

static mut CONFIG_MANAGER: ConfigManager = ConfigManager {
    use_phi: false,
    optimise: true,
    debug: false,
    verbose: false,
    all_allocs_in_entry: true,
};

#[allow(unused)]
pub fn get_config_manager() -> &'static ConfigManager {
    unsafe{ return &CONFIG_MANAGER; }
}

#[allow(unused)]
pub fn get_config_manager_mut() -> &'static mut ConfigManager {
    unsafe{ return &mut CONFIG_MANAGER; }
}

#[macro_export]
macro_rules! vprintln {
    () => {
        if get_config_manager().verbose {
            (println!());
        }
    };
    ($($arg:tt)*) => {
        if get_config_manager().verbose {
            (println!($($arg)*));
        }
    };
}

